package com.smartleanx.module.hrm.service.employee;

import javax.validation.*;

import com.smartleanx.module.hrm.controller.admin.employee.edu.EmployeeEducationExperienceSaveReqVO;
import com.smartleanx.module.hrm.dal.dataobject.employee.EmployeeEducationExperienceDO;

import java.util.List;

/**
 * 员工教育经历 Service 接口
 *
 * @author tengcj
 */
public interface EmployeeEducationExperienceService {

    /**
     * 创建员工教育经历
     *
     * @param createReqVO 创建信息
     * @return 编号
     */
    Long createEmployeeEducationExperience(@Valid EmployeeEducationExperienceSaveReqVO createReqVO);

    /**
     * 更新员工教育经历
     *
     * @param updateReqVO 更新信息
     */
    void updateEmployeeEducationExperience(@Valid EmployeeEducationExperienceSaveReqVO updateReqVO);

    /**
     * 删除员工教育经历
     *
     * @param id 编号
     */
    void deleteEmployeeEducationExperience(Long id);

    /**
     * 获得员工教育经历
     *
     * @param id 编号
     * @return 员工教育经历
     */
    EmployeeEducationExperienceDO getEmployeeEducationExperience(Long id);

    /**
     * 获得员工教育经历列表
     *
     * @param employeeId
     * @return
     */
    List<EmployeeEducationExperienceDO> getEmployeeEducationExperienceList(Long employeeId);

    void deleteByEmployeeId(Long employeeId);
}